Apache CXF 使用 - 03 -简介 - 如何开发一个服务

Apache CXF 使用 - 03 -简介 - 如何开发一个服务

How do I develop a service?

Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务

CXF 提供了多种建立service的方式

service的类型

CXF支持三大类service:

从Java建立JAX-WS注解服务(JAX-WS Annotated Services from Java)

JAX-WS API包括了一系列用来建立服务的注解。这些服务基于一个包含一组操作的类。

@WebService
public class Hello {
public String sayHi(String name) {
return "Hello " + name;
}
}

JAX-WS 还包括以下注解:

  • @WebMethod - 允许自定义操作的名称,将某操作排除在服务之外等等;
  • @WebParam - 允许自定义参数的名称、命名空间、方向(in/out)等;(所以如果没有加注解,编译后的类中,参数将被命名为arg0…)
  • @WebResult - 允许自定义服务调用的返回值

Data is marshalled from XML to Java and vice versa via the JAXB data-binding.

更多情况下使用接口和其实现类进行service的开发:

//接口
import javax.jws.WebService;
@WebService
public interface HelloService {
String say(String name);
}
//实现类
import javax.jws.WebService;
import org.springframework.stereotype.Component;
@WebService
@Component //或 @Service
public class HelloServiceImpl implements HelloService {
public String say(String name) {
return "hello " + name;
}
}

服务发布:

JAX-WS标准端点(Endpoint)API

JaxWsServer 类 (JaxWsServerFactoryBean )

CXF的XML配置格式之<jaxws:endpoint ... /> (更简便)

CXF的XML配置格式之<jaxws:server .../>

更多信息: A simple JAX-WS service, Developing a JAX-WS Service (更深入), Writing a service with Spring

从WSDL建立JAX-WS注解服务(JAX-WS Annotated Services from WSDL)

如果已有一个服务的WSDL文件,或者希望先编写WSDL文件然后生成相关类,CXF提供了多种工具来实现此目的。

WSDL2Java 工具将从WSDL文件生成一个JAX-WS注解的服务类和服务器存根(server stub)。可以从三种方式运行此工具:

也有Simple Frontend允许基于XML配置文件而非注解来创建service

JAX-WS Providers

JAX-WS Providers 允许你创建工作在消息层(message level )的service——与工作在操作层(operation level )注解类相对应。其有一个单独的invoke操作来接收消息数据(message payload),即SOAP消息体,或者整个消息本身(SOAP Envelope)。

@WebServiceProvider
public class HelloProvider {
public Source invoke(Source request) {
return ....;
}
}

Javascript

CXF也提供了一个javascript模块与Java Rhino库一起建立service。参考:http://cxf.apache.org/docs/javascript.html

文章目录
  1. 1. Apache CXF 使用 - 03 -简介 - 如何开发一个服务
    1. 1.1. service的类型
    2. 1.2. 从Java建立JAX-WS注解服务(JAX-WS Annotated Services from Java)
  2. 2. 服务发布:
    1. 2.1. JAX-WS标准端点(Endpoint)API
    2. 2.2. JaxWsServer 类 (JaxWsServerFactoryBean )
    3. 2.3. CXF的XML配置格式之(更简便)
    4. 2.4. CXF的XML配置格式之
      1. 2.4.1. 从WSDL建立JAX-WS注解服务(JAX-WS Annotated Services from WSDL)
      2. 2.4.2. JAX-WS Providers
      3. 2.4.3. Javascript
|